![Introducing Enhanced Alert Actions and Triage Functionality](https://cdn.sanity.io/images/cgdhsj6q/production/fe71306d515f85de6139b46745ea7180362324f0-2530x946.png?w=800&fit=max&auto=format)
Product
Introducing Enhanced Alert Actions and Triage Functionality
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.
@fal-works/esbuild-plugin-global-externals
Advanced tools
esbuild plugin for replacing imports with global variables.
Package description
The @fal-works/esbuild-plugin-global-externals npm package is designed to work with the esbuild bundler, allowing developers to exclude specific modules from the bundle and instead treat them as global variables provided at runtime. This is particularly useful for large libraries or frameworks that are included via a CDN or are already present in the global scope of the user's environment.
Exclude specific modules
This feature allows developers to exclude modules like React and ReactDOM from the bundle. These excluded modules are then accessed as global variables, which must be included in the global scope separately, typically via a script tag in HTML.
require('esbuild').build({
entryPoints: ['app.js'],
bundle: true,
outfile: 'out.js',
plugins: [
require('@fal-works/esbuild-plugin-global-externals')({
react: 'React',
'react-dom': 'ReactDOM'
})
]
});
Similar to @fal-works/esbuild-plugin-global-externals, this package provides functionality to exclude specific modules from esbuild bundles and map them to global variables. The main difference lies in the configuration options and possibly the implementation details, which might affect performance or compatibility with different versions of esbuild.
This package also allows for treating npm packages as globals in the esbuild bundling process. It compares to @fal-works/esbuild-plugin-global-externals by offering a similar feature set but may have variations in syntax or additional configuration features that could be beneficial depending on the project requirements.
Readme
esbuild plugin for replacing imports with global variables.
Similar to (but not the same as) output.globals
option of Rollup. See also: evanw/esbuild#337
Originally developed with esbuild v0.8.40, and should work with higher versions as well.
This:
import p5 from "p5";
new p5();
transpiles to:
// Here a variable `p5` should be defined globally (typically via UMD)
var p5_default = p5;
new p5_default();
import { globalExternals } from "@fal-works/esbuild-plugin-global-externals";
/** Mapping from module paths to global variables */
const globals = {
jquery: "$"
};
esbuild.build({
entryPoints: ["src/main.js"],
outfile: "dist/bundle.js",
bundle: true,
plugins: [globalExternals(globals)],
});
If you prefer RegExp
use globalExternalsWithRegExp()
instead, however note that the RegExp
you'll pass should be valid in Go language as well.
Instead of simply providing variable names only, you can pass ModuleInfo
objects to configure the loading behavior for each module.
Either "esm"
(default) or "cjs"
.
This determines the internal behavior of this plugin when loading modules (which affects the code after bundling as well).
globalExternals({
"someModulePath": {
varName: "someGlobalVar",
type: "cjs"
}
})
If type: "esm"
and also if you're doing named import with some modules in question, you have to tell which variables from each module should be importable.
Additionally, if you don't do default import/export, you can prevent emitting code for this with defaultExport: false
.
Both have no effects if type: "cjs"
(which should work fine with named imports as well).
globalExternals({
"someModulePath": {
varName: "someGlobalVar",
namedExports: ["someExportedVar"],
defaultExport: false
}
})
The example above enables the following even if type: "esm"
:
import { someExportedVar } from "someModulePath";
which transpiles to:
var someExportedVar = someGlobalVar.someExportedVar;
FAQs
esbuild plugin for replacing imports with global variables.
The npm package @fal-works/esbuild-plugin-global-externals receives a total of 2,928,984 weekly downloads. As such, @fal-works/esbuild-plugin-global-externals popularity was classified as popular.
We found that @fal-works/esbuild-plugin-global-externals demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.
Security News
Polyfill.io has been serving malware for months via its CDN, after the project's open source maintainer sold the service to a company based in China.
Security News
OpenSSF is warning open source maintainers to stay vigilant against reputation farming on GitHub, where users artificially inflate their status by manipulating interactions on closed issues and PRs.